package com.xia.feign;

import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;

/**
 * 发现permission服务，并调用其接口
 * value：服务名，需要与nacos中注册的服务名一致
 */

@FeignClient(value = "permission")
public interface PermissionFeign {

    /**
     * 绑定默认角色到用户，用户注册的时候调用
     */
    @PostMapping("/permission/bindDefaultRole/{userId}")
    public int bindDefaultRole(@PathVariable Long userId);

    /**
     * 获取用户的角色代码，用户登录的时候调用
     */
    @PostMapping("/permission/getUserRoleCode/{userId}")
    public String getUserRoleCode(@PathVariable Long userId);

    /**
     * 将用户升级为管理员，超管调用
     */
    @PostMapping("/permission/upgradeToAdmin/{userId}")
    public int upgradeToAdmin(@PathVariable Long userId);

    /**
     * 将管理员降级为用户，超管调用
     */
    @PostMapping("/permission/downgradeToUser/{userId}")
    public int downgradeToUser(@PathVariable Long userId);

}
